package cn.gok.oa.system.entity;

    import cn.gok.oa.system.vo.MenuVo;
    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.annotation.TableId;

    import java.beans.Transient;
    import java.time.LocalDateTime;
    import com.baomidou.mybatisplus.annotation.TableField;
    import java.io.Serializable;
    import java.util.ArrayList;
    import java.util.List;

    import com.baomidou.mybatisplus.annotation.TableLogic;
    import lombok.Data;
    import lombok.EqualsAndHashCode;
    import lombok.NoArgsConstructor;
    import lombok.experimental.Accessors;

/**
* <p>
    * 
    * </p>
*
* @author gok
* @since 2022-08-04
*/

    @NoArgsConstructor
    @Data
    @EqualsAndHashCode(callSuper = false)
    @Accessors(chain = true)
    public class TbMenu implements Serializable {

    private static final long serialVersionUID = 1L;

            /**
            * 菜单id
            */
            @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

            /**
            * 前端定位
            */
        @TableField("NAME")
    private String name;

           /**
           * 菜单标题
           */
    private String title;

    /**
     * 菜单图标
     */
    private String icon;

            /**
            * 菜单路由
            */
    private String path;
             /**
              * 组件
              */
    private String component;
             /**
              * 隐藏
              */
    private Boolean hidden;

            /**
             * 重定向
             */
    private String redirect;

            /**
            * 父类id
            */
    private Integer parentId;

            /**
            * 创建人id
            */
    private Integer createId;

            /**
            * 修改人id
            */
    private Integer modifyId;

            /**
            * 创建时间
            */
    private LocalDateTime createTime;

            /**
            * 修改时间
            */
    private LocalDateTime modifyTime;

            /**
            * 状态
            */
            @TableLogic
        @TableField("STATUS")
    private Integer status;

            /**
            * 备注
            */

    private String remark;

//    @Transient
    // 设置实体类不关联对应的表的任何字段
    @TableField (exist = false)
    private List<MenuVo> children = new ArrayList<>();

}
